package com.sunreal.paygateway.dao.model;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.ToString;

/**
 * Table: t_refund_order
 */
@Data
public class RefundOrder implements Serializable {
    /**
     * 退款订单号
     *
     * Table:     t_refund_order
     * Column:    RefundOrderId
     * Nullable:  false
     */
    private String refundorderid;

    /**
     * 支付订单号
     *
     * Table:     t_refund_order
     * Column:    PayOrderId
     * Nullable:  false
     */
    private String payorderid;

    /**
     * 渠道支付单号
     *
     * Table:     t_refund_order
     * Column:    ChannelPayOrderNo
     * Nullable:  true
     */
    private String channelpayorderno;

    /**
     * 商户ID
     *
     * Table:     t_refund_order
     * Column:    MchId
     * Nullable:  false
     */
    private String mchid;

    /**
     * 商户退款单号
     *
     * Table:     t_refund_order
     * Column:    MchRefundNo
     * Nullable:  false
     */
    private String mchrefundno;

    /**
     * 渠道ID
     *
     * Table:     t_refund_order
     * Column:    ChannelId
     * Nullable:  false
     */
    private String channelid;

    /**
     * 支付金额,单位分
     *
     * Table:     t_refund_order
     * Column:    PayAmount
     * Nullable:  false
     */
    private Long payamount;

    /**
     * 退款金额,单位分
     *
     * Table:     t_refund_order
     * Column:    RefundAmount
     * Nullable:  true
     */
    private Long refundamount;

    /**
     * 原始订单编号，同步回调使用
     *
     * Table:     t_refund_order
     * Column:    OriginalOrderId
     * Nullable:  true
     */
    private String originalorderid;

    /**
     * 三位货币代码,人民币:cny
     *
     * Table:     t_refund_order
     * Column:    Currency
     * Nullable:  false
     */
    private String currency;

    /**
     * 退款状态:0-订单生成,1-退款中,2-退款成功,3-退款失败,4-业务处理完成
     *
     * Table:     t_refund_order
     * Column:    Status
     * Nullable:  false
     */
    private Byte status;

    /**
     * 退款结果:0-不确认结果,1-退款中，2-等待手动处理,3-确认成功,4-确认失败
     *
     * Table:     t_refund_order
     * Column:    Result
     * Nullable:  false
     */
    private Byte result;

    /**
     * 客户端IP
     *
     * Table:     t_refund_order
     * Column:    ClientIp
     * Nullable:  true
     */
    private String clientip;

    /**
     * 设备
     *
     * Table:     t_refund_order
     * Column:    Device
     * Nullable:  true
     */
    private String device;

    /**
     * 备注
     *
     * Table:     t_refund_order
     * Column:    RemarkInfo
     * Nullable:  true
     */
    private String remarkinfo;

    /**
     * 渠道用户标识,如微信openId,支付宝账号
     *
     * Table:     t_refund_order
     * Column:    ChannelUser
     * Nullable:  true
     */
    private String channeluser;

    /**
     * 用户姓名
     *
     * Table:     t_refund_order
     * Column:    UserName
     * Nullable:  true
     */
    private String username;

    /**
     * 渠道商户ID
     *
     * Table:     t_refund_order
     * Column:    ChannelMchId
     * Nullable:  false
     */
    private String channelmchid;

    /**
     * 渠道订单号
     *
     * Table:     t_refund_order
     * Column:    ChannelOrderNo
     * Nullable:  true
     */
    private String channelorderno;

    /**
     * 渠道错误码
     *
     * Table:     t_refund_order
     * Column:    ChannelErrCode
     * Nullable:  true
     */
    private String channelerrcode;

    /**
     * 渠道错误描述
     *
     * Table:     t_refund_order
     * Column:    ChannelErrMsg
     * Nullable:  true
     */
    private String channelerrmsg;

    /**
     * 特定渠道发起时额外参数
     *
     * Table:     t_refund_order
     * Column:    Extra
     * Nullable:  true
     */
    private String extra;

    /**
     * 通知地址
     *
     * Table:     t_refund_order
     * Column:    NotifyUrl
     * Nullable:  false
     */
    private String notifyurl;

    /**
     * 扩展参数1
     *
     * Table:     t_refund_order
     * Column:    Param1
     * Nullable:  true
     */
    private String param1;

    /**
     * 扩展参数2
     *
     * Table:     t_refund_order
     * Column:    Param2
     * Nullable:  true
     */
    private String param2;

    /**
     * 订单失效时间
     *
     * Table:     t_refund_order
     * Column:    ExpireTime
     * Nullable:  true
     */
    private Date expiretime;

    /**
     * 订单退款成功时间
     *
     * Table:     t_refund_order
     * Column:    RefundSuccTime
     * Nullable:  true
     */
    private Date refundsucctime;

    /**
     * 创建时间
     *
     * Table:     t_refund_order
     * Column:    CreateTime
     * Nullable:  false
     */
    private Date createtime;

    /**
     * 更新时间
     *
     * Table:     t_refund_order
     * Column:    UpdateTime
     * Nullable:  false
     */
    private Date updatetime;

    /**
     * 通知次数
     *
     * Table:     t_refund_order
     * Column:    NotifyCount
     * Nullable:  false
     */
    private Byte notifycount;

    private static final long serialVersionUID = 1L;
}
